﻿Public Class clHabilidad : Inherits clObjeto : Implements IEquatable(Of clHabilidad)

    'Public Enum EsParaQuien
    '    Nadie
    '    Anfitrion
    '    Invitado
    '    Ambos
    'End Enum
    'Public Enum MiTipo
    '    Curativo 'Cura
    '    Ofensivo 'Daña y/o afecta a unos parametros.
    '    Defensivo 'Modifica algunos parámetros
    '    Parasitario 'Roba vida al enemigo -¿Y si le dejamos que robe otros parámetros?-.
    'End Enum
    'Public Enum AfectaA
    '    Ataque
    '    Defensa
    '    Resistencia
    '    Velocidad
    '    Vida
    '    nombre
    'End Enum
    'Public Property Activa As Boolean
    'Protected _AfectaA As AfectaA
    'Protected _Beneficiosa As Boolean = True
    'Protected _ParaQuien As EsParaQuien = EsParaQuien.Nadie
    'Protected _Valor As Integer
    'Protected _tipo As MiTipo
    'Protected _ValorPorcentual As Decimal = 0 'de 0 a 1
    'Private Sub AplicarEfectos(ByRef Ser As clSer)
    '    Select Case _AfectaA 'TODO cambiar cosas o borrar esto si no gusta.
    '        Case Is = AfectaA.Ataque

    '        Case Is = AfectaA.Defensa

    '        Case Is = AfectaA.Resistencia

    '        Case Is = AfectaA.Velocidad

    '        Case Is = AfectaA.Vida
    '            Dim valor As Decimal = _Valor - Ser.Defensa
    '            If _Beneficiosa Then
    '                Ser.VidaRestante = Ser.VidaRestante + valor
    '            Else
    '                Ser.VidaRestante = Ser.VidaRestante - valor
    '            End If
    '    End Select
    'End Sub
    'Private Sub AplicarEfectos(ByRef Ser1 As clSer, ByRef ser2 As clSer)
    '    AplicarEfectos(Ser1)
    '    AplicarEfectos(ser2)
    'End Sub
    'Public Function AplicarHabilidad(ByRef Anfitrion As clSer, ByRef Invitado As clSer) As Boolean
    '    If _ParaQuien = EsParaQuien.Nadie Then Return False
    '    Select Case _ParaQuien
    '        Case Is = EsParaQuien.Ambos
    '            AplicarEfectos(Anfitrion, Invitado)
    '        Case Is = EsParaQuien.Anfitrion
    '            AplicarEfectos(Anfitrion)
    '        Case Is = EsParaQuien.Invitado
    '            AplicarEfectos(Invitado)
    '    End Select

    '    Return True
    'End Function
    'Public Property PermitirFueraDeCombate As Boolean = False 'Imagino que es obvio que habrá magia que NO se pueda usar fuera de combate. Dejo todo protegido por si queremos hacer herencia.

    Public costeMana As Double = 0
    Protected _efecto As Double
    Protected _tipo As String ' A= ATAQUE V=VELOCIDAD D=DEFENSA S=ESPECIAL
    Protected _imagenH As Image
    Public Sub New(ByVal nombre As String, ByVal efecto As Double, ByVal tipo As String) 'TODO Sin que se le pase imagen, daba error, para hacer pruebas es´tará bien.
        Me._Nombre = nombre
        Me._efecto = efecto
        Me._tipo = tipo
    End Sub
    Public Sub New(ByVal nombre As String, ByVal efecto As Double, ByVal tipo As String, ByVal imagenH As Image)
        Me._Nombre = nombre
        Me._efecto = efecto
        Me._tipo = tipo
        Me._imagenH = imagenH
    End Sub
    Public Function llamar_Efecto() As Double 'Devuelve el efecto de la carta(Valor del plus)
        Return _efecto
    End Function
    Public Function llamar_Tipo() As String 'Devuelve el tipo de la carta(AVDS)
        Return _tipo
    End Function
    Public Function llamar_Imagen() As Image 'Devuelve la imagen de la carta a modo de String
        Return _imagenH
    End Function
    Public Overloads Shared Function Equals(ByVal A As clHabilidad, ByVal B As clHabilidad) As Boolean
        Return A._Nombre = B._Nombre
    End Function
    Public Overloads Function Equals(ByVal B As clHabilidad) As Boolean Implements System.IEquatable(Of clHabilidad).Equals
        Return Equals(Me, B)
    End Function
End Class
